home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 14 / CU Amiga Magazine's Super CD-ROM 14 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-09].iso / CUCD / Programming / GMS / Source / Asm / Screens / ScrollMemory.s < prev   
Encoding:
Text File  |  1997-05-04  |  2.8 KB  |  123 lines

  1. ;-------T-------T------------------------T----------------------------------;
  2. ;Scroll Memory
  3. ;-------------
  4. ;This demo shows you the power of the scrolling features by allowing you
  5. ;to scroll all over your chip ram :-).  Usually you would set limits to stop
  6. ;you from going over the boundaries, but that's up to you.
  7. ;
  8. ;Use mouse to move around, LMB exits.
  9.  
  10.     INCDIR    "INCLUDES:"
  11.     INCLUDE    "games/games_lib.i"
  12.     INCLUDE    "games/games.i"
  13.  
  14. CALL    MACRO
  15.     jsr    _LVO\1(a6)
  16.     ENDM
  17.  
  18.     SECTION    "ScrollMemory",CODE
  19.  
  20. ;===========================================================================;
  21. ;                             INITIALISE DEMO
  22. ;===========================================================================;
  23.  
  24.     STARTGMS
  25.  
  26. Start:    MOVEM.L    A0-A6/D1-D7,-(SP)
  27.     move.l    GMSBase(pc),a6
  28.     lea    ScreenTags(pc),a0
  29.     CALL    AddScreen
  30.     tst.l    d0
  31.     beq.s    .Error_Screen
  32.  
  33.     move.l    Screen(pc),a0
  34.     lea    PictureTags(pc),a1
  35.     move.l    GS_MemPtr1(a0),PicData
  36.     CALL    LoadPic
  37.     tst.l    d0
  38.     beq.s    .Error_Picture
  39.  
  40.     CALL    ShowScreen
  41.     CALL    InitJoyPorts
  42.     bsr.s    Main
  43.  
  44. .ReturnToDOS
  45.     move.l    GMSBase(pc),a6
  46.     move.l    Picture(pc),a1
  47.     CALL    FreePic
  48. .Error_Picture
  49.     move.l    Screen(pc),a0
  50.     CALL    DeleteScreen
  51. .Error_Screen
  52.     MOVEM.L    (SP)+,A0-A6/D1-D7
  53.     moveq    #ERR_OK,d0
  54.     rts
  55.  
  56. ;===========================================================================;
  57. ;                                MAIN LOOP
  58. ;===========================================================================;
  59.  
  60. Main:    move.l    Screen(pc),a0
  61. .loop    moveq    #JPORT1,d0
  62.     moveq    #JT_ZBXY,d1
  63.     CALL    ReadJoyPort
  64.     btst    #MB_RMB,d0
  65.     bne.s    .done
  66.     move.w    d0,d1
  67.     asr.w    #8,d0    ;d0 = X Change
  68.     ext.w    d1
  69.  
  70.     ;btst    #MB_LMB,d0
  71.     ;bne.s    .MoveScreen
  72. .MovePicture
  73.     add.w    d0,GS_PicXOffset(a0)
  74.     add.w    d1,GS_PicYOffset(a0)
  75.     CALL    RemakeScreen
  76.     CALL    MovePicture
  77.     CALL    WaitVBL
  78.     bra.s    .loop
  79.  
  80. .MoveScreen
  81.     add.w    d0,GS_ScrXOffset(a0)
  82.     add.w    d1,GS_ScrYOffset(a0)
  83.     CALL    RemakeScreen
  84.     CALL    MovePicture
  85.     CALL    WaitVBL
  86.     bra.s    .loop
  87. .done    rts
  88.  
  89. ;===========================================================================;
  90. ;                                  DATA
  91. ;===========================================================================;
  92.  
  93. ScreenTags:
  94.     dc.l    TAGS_GAMESCREEN
  95. Screen:    dc.l    0
  96.     dc.l    GSA_Palette,Palette
  97.     dc.l    GSA_ScrWidth,320
  98.     dc.l    GSA_ScrHeight,256
  99.     dc.l    GSA_AmtColours,32
  100.     dc.l    GSA_Attrib,HSCROLL|VSCROLL|SBUFFER|CENTRE
  101.     dc.l    TAGEND
  102.  
  103. Palette    dc.l    $000000,$103000,$F0C0B0,$F0A090,$D08080,$906050,$604040,$201010
  104.     dc.l    $400000,$404040,$F0F000,$403020,$C0C000,$105000,$500010,$808000
  105.     dc.l    $206010,$207010,$308020,$409020,$50A030,$50B040,$607070,$60C040
  106.     dc.l    $708080,$90A0A0,$B0C0C0,$800010,$900010,$A00020,$700010,$600010
  107.  
  108. PictureTags:
  109.     dc.l    TAGS_PICTURE
  110. Picture    dc.l    0
  111.     dc.l    PCA_Data
  112. PicData    dc.l    0
  113.     dc.l    PCA_Width,320
  114.     dc.l    PCA_Height,256
  115.     dc.l    PCA_AmtColours,32
  116.     dc.l    PCA_Palette,Palette
  117.     dc.l    PCA_File,.File
  118.     dc.l    TAGEND
  119.  
  120. .file    dc.b    "GMS:demos/data/PIC.Green",0
  121.     even
  122.  
  123.